﻿using CREAPA.RepositorioADO;
using CREAPA.UL.Web.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace CREAPA.UL.Web.Controllers
{
    public class InspetoriaController : Controller
    {
        InspetoriaRepositorioADO inspetoriaADO = new InspetoriaRepositorioADO();
        private siscreaEntitiesBD db = new siscreaEntitiesBD();

        [Authorize]
        public ActionResult Index()
        {
            string usu = User.Identity.Name;
            var permissao = new SelectList(db.FuncionarioPermissoes.Where(p => p.Login == usu && (p.Permissao == 7 || p.Permissao == 11)));

            if (permissao.Count() > 0)
            {
                var listaInspetoria = inspetoriaADO.ListarInspetoria();
                return View(listaInspetoria);
            }
            else
            {
                TempData["notice"] = "Você não tem permissão para acessar essa página. É necessária a permissão: 0007";
                return RedirectToAction("../Os/Erro");
            }
        }

        [Authorize]
        public ActionResult Cadastrar()
        {
            return View();
        }

        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Cadastrar(CREAPA.Dominio.Inspetoria inspetoria)
        {
            if (ModelState.IsValid)
            {
                inspetoriaADO.Salvar(inspetoria);
                return RedirectToAction("Index");
            }
            return View(inspetoria);
        }

        [Authorize]
        public ActionResult Alterar(int id)
        {
            var inspetoria = inspetoriaADO.ListarPorId(id);
            if (inspetoria == null)
            {
                return HttpNotFound();
            }
            return View(inspetoria);
        }

        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Alterar(CREAPA.Dominio.Inspetoria inspetoria)
        {
            if (ModelState.IsValid)
            {
                inspetoriaADO.Salvar(inspetoria);
                return RedirectToAction("Index");
            }
            return View(inspetoria);
        }

        [Authorize]
        public ActionResult Excluir(int id)
        {
            var inspetoria = inspetoriaADO.ListarPorId(id);

            if (inspetoria == null)
            {
                return HttpNotFound();
            }
            return View(inspetoria);
        }

        [HttpPost, ActionName("Excluir")]
        [ValidateAntiForgeryToken]
        public ActionResult ExcluirConfirmado(int id)
        {
            inspetoriaADO.Excluir(id);
            return RedirectToAction("Index");
        }
    }
}
